// 导入 express 模块
const express = require('express')
// 导入 cors 中间件
const cors = require('cors')
// 导入 用户路由 模块
const userRouter = require('./src/router/user')
// 导入 用户信息路由 模块
const userinfoRouter = require('./src/router/userinfo')
// 导入 文章分类路由 模块
const artCateRouter = require('./src/router/artcate')
// 导入 文章路由 模块
const articleRouter = require('./src/router/article')

// 导入 中间件
const { setCustomResponse, handleErrors, jwtMiddleware } = require('./src/middlewares')

// 创建 express 的服务器实例
const app = express()

// 注册全局中间件
app.use(cors())
// 响应数据的中间件
app.use(setCustomResponse)
// 配置解析表单数据的中间件
app.use(express.urlencoded({ extended: false }))
// 托管静态资源
app.use('/uploads', express.static('./src/uploads'))
// 配置身份认证中间件
app.use(jwtMiddleware)

// 注册 用户路由 模块
app.use('/api', userRouter)
// 注册 用户信息路由 模块
app.use('/my', userinfoRouter)
// 注册 文章分类路由 模块
app.use('/my/article', artCateRouter)
// 注册 文章路由 模块
app.use('/my/article', articleRouter)


// 错误级别中间件
app.use(handleErrors)

// 调用 app.listen 方法，指定端口号并启动web服务器 
app.listen(3007, () => console.log('api server running at http://127.0.0.1:3007'))